// 网络相关的工具函数

// 获取网络类型文本
export const getNetworkTypeText = (isPublic) => {
  return isPublic ? '公网' : '内网';
};

// 验证网络名称
export const validateNetworkName = (name) => {
  if (!name || !name.trim()) {
    return '请输入局域网名称';
  }
  if (name.length > 100) {
    return '局域网名称不能超过100个字符';
  }
  return null;
};

// 验证Tracker URL
export const validateTrackerUrl = (url) => {
  if (!url || !url.trim()) {
    return '请输入Tracker URL';
  }
  if (url.length > 255) {
    return 'Tracker URL不能超过255个字符';
  }
  // 简单的URL格式验证
  const urlPattern = /^[a-zA-Z0-9.-]+:\d+$/;
  if (!urlPattern.test(url)) {
    return 'Tracker URL格式不正确，应为: IP:端口';
  }
  return null;
};

// 获取网络状态配置
export const getNetworkStatusConfig = (status) => {
  const statusConfigs = {
    active: { 
      color: 'success', 
      text: '活跃',
      description: '网络正常运行中'
    },
    inactive: { 
      color: 'default', 
      text: '不活跃',
      description: '网络暂时不可用'
    },
    pending: { 
      color: 'warning', 
      text: '等待中',
      description: '等待Tracker连接'
    }
  };
  
  return statusConfigs[status] || { 
    color: 'default', 
    text: '未知',
    description: '状态未知'
  };
};

// 检查用户是否可以加入网络
export const canJoinNetwork = (network, userRole) => {
  if (userRole) {
    return { canJoin: false, reason: '您已经是该网络的成员' };
  }
  
  if (network.status !== 'active') {
    return { canJoin: false, reason: '网络当前不可用' };
  }
  
  return { canJoin: true, reason: null };
};

// 检查用户是否可以管理网络
export const canManageNetwork = (userRole) => {
  return userRole === 'admin';
};

// 格式化成员数量显示
export const formatMemberCount = (count) => {
  if (count === 0) return '暂无成员';
  if (count === 1) return '1名成员';
  return `${count}名成员`;
};

// 生成网络分享链接
export const generateShareLink = (networkId) => {
  return `${window.location.origin}/network/${networkId}`;
};